iT邦幫忙

2024 iThome 鐵人賽

0
自我挑戰組

ASP.NET Core生成網站記錄系列 第 28

DAY28-設計類

  • 分享至 

  • xImage
  •  

DapperRepository: 這個東西就像是一個會說資料庫語言的翻譯官,它能把我們寫的查詢指令翻譯成資料庫能聽懂的語言,然後把資料庫的結果再翻譯成我們看得懂的格式。
EntityObject: 這個就像是一個模版,告訴程式我們要撈的資料是什麼樣子。比如,我們要撈「公司」的資料,那這個模版就會定義「公司」有哪些屬性,例如「公司名稱」、「成立日期」等等。
SQL語句: 這些 SQL 語句就是我們跟資料庫溝通的指令,告訴資料庫我們要什麼資料。
OrderBy、Where等: 這些就是我們用來篩選和排序資料的條件。
Async/Await: 這些是讓程式可以邊做別的事邊等資料庫回應的關鍵字,這樣程式就不會卡住不動了。
為什麼不直接寫SQL語句就好?

重複性高: 每次要撈資料都要寫一次SQL語句,很麻煩。
錯誤容易: SQL語句寫錯了,很容易造成資料庫錯誤。
不易維護: 如果資料庫結構改變了,所有的SQL語句都要修改。
這個類的好處是什麼?

方便: 我們不用每次都寫複雜的SQL語句,只要用簡單的方法就能完成資料庫操作。
安全: 它幫我們處理了很多細節,比如防止SQL注入攻擊。
可擴充: 我們可以根據需要擴充這個類的功能。

sql_query = GetSQLSelect();:

這行先準備了一份基本的 SQL 查詢語句,這個語句會告訴資料庫:「我要查詢公司的一些資訊。」
sql_query += " WHERE Companys.IsDefault = @IsDefault AND Companys.IsEnabled = @IsEnabled";:

這行在原本的查詢語句後面加了一個條件,意思是:「我要找的是『IsDefault』欄位是『true』,而且『IsEnabled』欄位也是『true』的公司。」
var param = new DynamicParameters();:

這行建立了一個叫做 param 的東西,用來存放我們要傳給資料庫的參數。
param.Add("@IsDefault", true, DbType.Boolean); 和 param.Add("@IsEnabled", true, DbType.Boolean);:

這兩行把「IsDefault」和「IsEnabled」這兩個參數加到 param 裡面,並且設定它們的值都是 true。
var model = dpr.ReadSingle(sql_query, param);:

這行就是把準備好的 SQL 查詢語句和參數丟給資料庫執行,然後把查詢到的結果放到一個叫做 model 的變數裡。這個 model 就是我們要找的那家預設且啟用的公司。
return model;:

最後,這行把找到的公司資訊回傳給呼叫這個函式的程式。


上一篇
DAY27-設計類
下一篇
DAY29-SESSION
系列文
ASP.NET Core生成網站記錄31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言